package com.pactera.asmp.server.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class SubtaskDistributeExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public SubtaskDistributeExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Long value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Long value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Long value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Long value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Long value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Long value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Long> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Long> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Long value1, Long value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Long value1, Long value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andTaskIdIsNull() {
            addCriterion("task_id is null");
            return (Criteria) this;
        }

        public Criteria andTaskIdIsNotNull() {
            addCriterion("task_id is not null");
            return (Criteria) this;
        }

        public Criteria andTaskIdEqualTo(Long value) {
            addCriterion("task_id =", value, "taskId");
            return (Criteria) this;
        }

        public Criteria andTaskIdNotEqualTo(Long value) {
            addCriterion("task_id <>", value, "taskId");
            return (Criteria) this;
        }

        public Criteria andTaskIdGreaterThan(Long value) {
            addCriterion("task_id >", value, "taskId");
            return (Criteria) this;
        }

        public Criteria andTaskIdGreaterThanOrEqualTo(Long value) {
            addCriterion("task_id >=", value, "taskId");
            return (Criteria) this;
        }

        public Criteria andTaskIdLessThan(Long value) {
            addCriterion("task_id <", value, "taskId");
            return (Criteria) this;
        }

        public Criteria andTaskIdLessThanOrEqualTo(Long value) {
            addCriterion("task_id <=", value, "taskId");
            return (Criteria) this;
        }

        public Criteria andTaskIdIn(List<Long> values) {
            addCriterion("task_id in", values, "taskId");
            return (Criteria) this;
        }

        public Criteria andTaskIdNotIn(List<Long> values) {
            addCriterion("task_id not in", values, "taskId");
            return (Criteria) this;
        }

        public Criteria andTaskIdBetween(Long value1, Long value2) {
            addCriterion("task_id between", value1, value2, "taskId");
            return (Criteria) this;
        }

        public Criteria andTaskIdNotBetween(Long value1, Long value2) {
            addCriterion("task_id not between", value1, value2, "taskId");
            return (Criteria) this;
        }

        public Criteria andScriptSizeIsNull() {
            addCriterion("script_size is null");
            return (Criteria) this;
        }

        public Criteria andScriptSizeIsNotNull() {
            addCriterion("script_size is not null");
            return (Criteria) this;
        }

        public Criteria andScriptSizeEqualTo(Integer value) {
            addCriterion("script_size =", value, "scriptSize");
            return (Criteria) this;
        }

        public Criteria andScriptSizeNotEqualTo(Integer value) {
            addCriterion("script_size <>", value, "scriptSize");
            return (Criteria) this;
        }

        public Criteria andScriptSizeGreaterThan(Integer value) {
            addCriterion("script_size >", value, "scriptSize");
            return (Criteria) this;
        }

        public Criteria andScriptSizeGreaterThanOrEqualTo(Integer value) {
            addCriterion("script_size >=", value, "scriptSize");
            return (Criteria) this;
        }

        public Criteria andScriptSizeLessThan(Integer value) {
            addCriterion("script_size <", value, "scriptSize");
            return (Criteria) this;
        }

        public Criteria andScriptSizeLessThanOrEqualTo(Integer value) {
            addCriterion("script_size <=", value, "scriptSize");
            return (Criteria) this;
        }

        public Criteria andScriptSizeIn(List<Integer> values) {
            addCriterion("script_size in", values, "scriptSize");
            return (Criteria) this;
        }

        public Criteria andScriptSizeNotIn(List<Integer> values) {
            addCriterion("script_size not in", values, "scriptSize");
            return (Criteria) this;
        }

        public Criteria andScriptSizeBetween(Integer value1, Integer value2) {
            addCriterion("script_size between", value1, value2, "scriptSize");
            return (Criteria) this;
        }

        public Criteria andScriptSizeNotBetween(Integer value1, Integer value2) {
            addCriterion("script_size not between", value1, value2, "scriptSize");
            return (Criteria) this;
        }

        public Criteria andCanScriptIdsIsNull() {
            addCriterion("can_script_ids is null");
            return (Criteria) this;
        }

        public Criteria andCanScriptIdsIsNotNull() {
            addCriterion("can_script_ids is not null");
            return (Criteria) this;
        }

        public Criteria andCanScriptIdsEqualTo(String value) {
            addCriterion("can_script_ids =", value, "canScriptIds");
            return (Criteria) this;
        }

        public Criteria andCanScriptIdsNotEqualTo(String value) {
            addCriterion("can_script_ids <>", value, "canScriptIds");
            return (Criteria) this;
        }

        public Criteria andCanScriptIdsGreaterThan(String value) {
            addCriterion("can_script_ids >", value, "canScriptIds");
            return (Criteria) this;
        }

        public Criteria andCanScriptIdsGreaterThanOrEqualTo(String value) {
            addCriterion("can_script_ids >=", value, "canScriptIds");
            return (Criteria) this;
        }

        public Criteria andCanScriptIdsLessThan(String value) {
            addCriterion("can_script_ids <", value, "canScriptIds");
            return (Criteria) this;
        }

        public Criteria andCanScriptIdsLessThanOrEqualTo(String value) {
            addCriterion("can_script_ids <=", value, "canScriptIds");
            return (Criteria) this;
        }

        public Criteria andCanScriptIdsLike(String value) {
            addCriterion("can_script_ids like", value, "canScriptIds");
            return (Criteria) this;
        }

        public Criteria andCanScriptIdsNotLike(String value) {
            addCriterion("can_script_ids not like", value, "canScriptIds");
            return (Criteria) this;
        }

        public Criteria andCanScriptIdsIn(List<String> values) {
            addCriterion("can_script_ids in", values, "canScriptIds");
            return (Criteria) this;
        }

        public Criteria andCanScriptIdsNotIn(List<String> values) {
            addCriterion("can_script_ids not in", values, "canScriptIds");
            return (Criteria) this;
        }

        public Criteria andCanScriptIdsBetween(String value1, String value2) {
            addCriterion("can_script_ids between", value1, value2, "canScriptIds");
            return (Criteria) this;
        }

        public Criteria andCanScriptIdsNotBetween(String value1, String value2) {
            addCriterion("can_script_ids not between", value1, value2, "canScriptIds");
            return (Criteria) this;
        }

        public Criteria andAuxiliaryScriptIdsIsNull() {
            addCriterion("auxiliary_script_ids is null");
            return (Criteria) this;
        }

        public Criteria andAuxiliaryScriptIdsIsNotNull() {
            addCriterion("auxiliary_script_ids is not null");
            return (Criteria) this;
        }

        public Criteria andAuxiliaryScriptIdsEqualTo(String value) {
            addCriterion("auxiliary_script_ids =", value, "auxiliaryScriptIds");
            return (Criteria) this;
        }

        public Criteria andAuxiliaryScriptIdsNotEqualTo(String value) {
            addCriterion("auxiliary_script_ids <>", value, "auxiliaryScriptIds");
            return (Criteria) this;
        }

        public Criteria andAuxiliaryScriptIdsGreaterThan(String value) {
            addCriterion("auxiliary_script_ids >", value, "auxiliaryScriptIds");
            return (Criteria) this;
        }

        public Criteria andAuxiliaryScriptIdsGreaterThanOrEqualTo(String value) {
            addCriterion("auxiliary_script_ids >=", value, "auxiliaryScriptIds");
            return (Criteria) this;
        }

        public Criteria andAuxiliaryScriptIdsLessThan(String value) {
            addCriterion("auxiliary_script_ids <", value, "auxiliaryScriptIds");
            return (Criteria) this;
        }

        public Criteria andAuxiliaryScriptIdsLessThanOrEqualTo(String value) {
            addCriterion("auxiliary_script_ids <=", value, "auxiliaryScriptIds");
            return (Criteria) this;
        }

        public Criteria andAuxiliaryScriptIdsLike(String value) {
            addCriterion("auxiliary_script_ids like", value, "auxiliaryScriptIds");
            return (Criteria) this;
        }

        public Criteria andAuxiliaryScriptIdsNotLike(String value) {
            addCriterion("auxiliary_script_ids not like", value, "auxiliaryScriptIds");
            return (Criteria) this;
        }

        public Criteria andAuxiliaryScriptIdsIn(List<String> values) {
            addCriterion("auxiliary_script_ids in", values, "auxiliaryScriptIds");
            return (Criteria) this;
        }

        public Criteria andAuxiliaryScriptIdsNotIn(List<String> values) {
            addCriterion("auxiliary_script_ids not in", values, "auxiliaryScriptIds");
            return (Criteria) this;
        }

        public Criteria andAuxiliaryScriptIdsBetween(String value1, String value2) {
            addCriterion("auxiliary_script_ids between", value1, value2, "auxiliaryScriptIds");
            return (Criteria) this;
        }

        public Criteria andAuxiliaryScriptIdsNotBetween(String value1, String value2) {
            addCriterion("auxiliary_script_ids not between", value1, value2, "auxiliaryScriptIds");
            return (Criteria) this;
        }

        public Criteria andLastSubtaskEndScriptIndexIsNull() {
            addCriterion("last_subtask_end_script_index is null");
            return (Criteria) this;
        }

        public Criteria andLastSubtaskEndScriptIndexIsNotNull() {
            addCriterion("last_subtask_end_script_index is not null");
            return (Criteria) this;
        }

        public Criteria andLastSubtaskEndScriptIndexEqualTo(Integer value) {
            addCriterion("last_subtask_end_script_index =", value, "lastSubtaskEndScriptIndex");
            return (Criteria) this;
        }

        public Criteria andLastSubtaskEndScriptIndexNotEqualTo(Integer value) {
            addCriterion("last_subtask_end_script_index <>", value, "lastSubtaskEndScriptIndex");
            return (Criteria) this;
        }

        public Criteria andLastSubtaskEndScriptIndexGreaterThan(Integer value) {
            addCriterion("last_subtask_end_script_index >", value, "lastSubtaskEndScriptIndex");
            return (Criteria) this;
        }

        public Criteria andLastSubtaskEndScriptIndexGreaterThanOrEqualTo(Integer value) {
            addCriterion("last_subtask_end_script_index >=", value, "lastSubtaskEndScriptIndex");
            return (Criteria) this;
        }

        public Criteria andLastSubtaskEndScriptIndexLessThan(Integer value) {
            addCriterion("last_subtask_end_script_index <", value, "lastSubtaskEndScriptIndex");
            return (Criteria) this;
        }

        public Criteria andLastSubtaskEndScriptIndexLessThanOrEqualTo(Integer value) {
            addCriterion("last_subtask_end_script_index <=", value, "lastSubtaskEndScriptIndex");
            return (Criteria) this;
        }

        public Criteria andLastSubtaskEndScriptIndexIn(List<Integer> values) {
            addCriterion("last_subtask_end_script_index in", values, "lastSubtaskEndScriptIndex");
            return (Criteria) this;
        }

        public Criteria andLastSubtaskEndScriptIndexNotIn(List<Integer> values) {
            addCriterion("last_subtask_end_script_index not in", values, "lastSubtaskEndScriptIndex");
            return (Criteria) this;
        }

        public Criteria andLastSubtaskEndScriptIndexBetween(Integer value1, Integer value2) {
            addCriterion("last_subtask_end_script_index between", value1, value2, "lastSubtaskEndScriptIndex");
            return (Criteria) this;
        }

        public Criteria andLastSubtaskEndScriptIndexNotBetween(Integer value1, Integer value2) {
            addCriterion("last_subtask_end_script_index not between", value1, value2, "lastSubtaskEndScriptIndex");
            return (Criteria) this;
        }

        public Criteria andSubtaskScriptSizeIsNull() {
            addCriterion("subtask_script_size is null");
            return (Criteria) this;
        }

        public Criteria andSubtaskScriptSizeIsNotNull() {
            addCriterion("subtask_script_size is not null");
            return (Criteria) this;
        }

        public Criteria andSubtaskScriptSizeEqualTo(Integer value) {
            addCriterion("subtask_script_size =", value, "subtaskScriptSize");
            return (Criteria) this;
        }

        public Criteria andSubtaskScriptSizeNotEqualTo(Integer value) {
            addCriterion("subtask_script_size <>", value, "subtaskScriptSize");
            return (Criteria) this;
        }

        public Criteria andSubtaskScriptSizeGreaterThan(Integer value) {
            addCriterion("subtask_script_size >", value, "subtaskScriptSize");
            return (Criteria) this;
        }

        public Criteria andSubtaskScriptSizeGreaterThanOrEqualTo(Integer value) {
            addCriterion("subtask_script_size >=", value, "subtaskScriptSize");
            return (Criteria) this;
        }

        public Criteria andSubtaskScriptSizeLessThan(Integer value) {
            addCriterion("subtask_script_size <", value, "subtaskScriptSize");
            return (Criteria) this;
        }

        public Criteria andSubtaskScriptSizeLessThanOrEqualTo(Integer value) {
            addCriterion("subtask_script_size <=", value, "subtaskScriptSize");
            return (Criteria) this;
        }

        public Criteria andSubtaskScriptSizeIn(List<Integer> values) {
            addCriterion("subtask_script_size in", values, "subtaskScriptSize");
            return (Criteria) this;
        }

        public Criteria andSubtaskScriptSizeNotIn(List<Integer> values) {
            addCriterion("subtask_script_size not in", values, "subtaskScriptSize");
            return (Criteria) this;
        }

        public Criteria andSubtaskScriptSizeBetween(Integer value1, Integer value2) {
            addCriterion("subtask_script_size between", value1, value2, "subtaskScriptSize");
            return (Criteria) this;
        }

        public Criteria andSubtaskScriptSizeNotBetween(Integer value1, Integer value2) {
            addCriterion("subtask_script_size not between", value1, value2, "subtaskScriptSize");
            return (Criteria) this;
        }

        public Criteria andNeedExecSumIsNull() {
            addCriterion("need_exec_sum is null");
            return (Criteria) this;
        }

        public Criteria andNeedExecSumIsNotNull() {
            addCriterion("need_exec_sum is not null");
            return (Criteria) this;
        }

        public Criteria andNeedExecSumEqualTo(Integer value) {
            addCriterion("need_exec_sum =", value, "needExecSum");
            return (Criteria) this;
        }

        public Criteria andNeedExecSumNotEqualTo(Integer value) {
            addCriterion("need_exec_sum <>", value, "needExecSum");
            return (Criteria) this;
        }

        public Criteria andNeedExecSumGreaterThan(Integer value) {
            addCriterion("need_exec_sum >", value, "needExecSum");
            return (Criteria) this;
        }

        public Criteria andNeedExecSumGreaterThanOrEqualTo(Integer value) {
            addCriterion("need_exec_sum >=", value, "needExecSum");
            return (Criteria) this;
        }

        public Criteria andNeedExecSumLessThan(Integer value) {
            addCriterion("need_exec_sum <", value, "needExecSum");
            return (Criteria) this;
        }

        public Criteria andNeedExecSumLessThanOrEqualTo(Integer value) {
            addCriterion("need_exec_sum <=", value, "needExecSum");
            return (Criteria) this;
        }

        public Criteria andNeedExecSumIn(List<Integer> values) {
            addCriterion("need_exec_sum in", values, "needExecSum");
            return (Criteria) this;
        }

        public Criteria andNeedExecSumNotIn(List<Integer> values) {
            addCriterion("need_exec_sum not in", values, "needExecSum");
            return (Criteria) this;
        }

        public Criteria andNeedExecSumBetween(Integer value1, Integer value2) {
            addCriterion("need_exec_sum between", value1, value2, "needExecSum");
            return (Criteria) this;
        }

        public Criteria andNeedExecSumNotBetween(Integer value1, Integer value2) {
            addCriterion("need_exec_sum not between", value1, value2, "needExecSum");
            return (Criteria) this;
        }

        public Criteria andExecSumIsNull() {
            addCriterion("exec_sum is null");
            return (Criteria) this;
        }

        public Criteria andExecSumIsNotNull() {
            addCriterion("exec_sum is not null");
            return (Criteria) this;
        }

        public Criteria andExecSumEqualTo(Integer value) {
            addCriterion("exec_sum =", value, "execSum");
            return (Criteria) this;
        }

        public Criteria andExecSumNotEqualTo(Integer value) {
            addCriterion("exec_sum <>", value, "execSum");
            return (Criteria) this;
        }

        public Criteria andExecSumGreaterThan(Integer value) {
            addCriterion("exec_sum >", value, "execSum");
            return (Criteria) this;
        }

        public Criteria andExecSumGreaterThanOrEqualTo(Integer value) {
            addCriterion("exec_sum >=", value, "execSum");
            return (Criteria) this;
        }

        public Criteria andExecSumLessThan(Integer value) {
            addCriterion("exec_sum <", value, "execSum");
            return (Criteria) this;
        }

        public Criteria andExecSumLessThanOrEqualTo(Integer value) {
            addCriterion("exec_sum <=", value, "execSum");
            return (Criteria) this;
        }

        public Criteria andExecSumIn(List<Integer> values) {
            addCriterion("exec_sum in", values, "execSum");
            return (Criteria) this;
        }

        public Criteria andExecSumNotIn(List<Integer> values) {
            addCriterion("exec_sum not in", values, "execSum");
            return (Criteria) this;
        }

        public Criteria andExecSumBetween(Integer value1, Integer value2) {
            addCriterion("exec_sum between", value1, value2, "execSum");
            return (Criteria) this;
        }

        public Criteria andExecSumNotBetween(Integer value1, Integer value2) {
            addCriterion("exec_sum not between", value1, value2, "execSum");
            return (Criteria) this;
        }

        public Criteria andMonkeyExeNumberIsNull() {
            addCriterion("monkey_exe_number is null");
            return (Criteria) this;
        }

        public Criteria andMonkeyExeNumberIsNotNull() {
            addCriterion("monkey_exe_number is not null");
            return (Criteria) this;
        }

        public Criteria andMonkeyExeNumberEqualTo(Integer value) {
            addCriterion("monkey_exe_number =", value, "monkeyExeNumber");
            return (Criteria) this;
        }

        public Criteria andMonkeyExeNumberNotEqualTo(Integer value) {
            addCriterion("monkey_exe_number <>", value, "monkeyExeNumber");
            return (Criteria) this;
        }

        public Criteria andMonkeyExeNumberGreaterThan(Integer value) {
            addCriterion("monkey_exe_number >", value, "monkeyExeNumber");
            return (Criteria) this;
        }

        public Criteria andMonkeyExeNumberGreaterThanOrEqualTo(Integer value) {
            addCriterion("monkey_exe_number >=", value, "monkeyExeNumber");
            return (Criteria) this;
        }

        public Criteria andMonkeyExeNumberLessThan(Integer value) {
            addCriterion("monkey_exe_number <", value, "monkeyExeNumber");
            return (Criteria) this;
        }

        public Criteria andMonkeyExeNumberLessThanOrEqualTo(Integer value) {
            addCriterion("monkey_exe_number <=", value, "monkeyExeNumber");
            return (Criteria) this;
        }

        public Criteria andMonkeyExeNumberIn(List<Integer> values) {
            addCriterion("monkey_exe_number in", values, "monkeyExeNumber");
            return (Criteria) this;
        }

        public Criteria andMonkeyExeNumberNotIn(List<Integer> values) {
            addCriterion("monkey_exe_number not in", values, "monkeyExeNumber");
            return (Criteria) this;
        }

        public Criteria andMonkeyExeNumberBetween(Integer value1, Integer value2) {
            addCriterion("monkey_exe_number between", value1, value2, "monkeyExeNumber");
            return (Criteria) this;
        }

        public Criteria andMonkeyExeNumberNotBetween(Integer value1, Integer value2) {
            addCriterion("monkey_exe_number not between", value1, value2, "monkeyExeNumber");
            return (Criteria) this;
        }

        public Criteria andRemainSumIsNull() {
            addCriterion("remain_sum is null");
            return (Criteria) this;
        }

        public Criteria andRemainSumIsNotNull() {
            addCriterion("remain_sum is not null");
            return (Criteria) this;
        }

        public Criteria andRemainSumEqualTo(Integer value) {
            addCriterion("remain_sum =", value, "remainSum");
            return (Criteria) this;
        }

        public Criteria andRemainSumNotEqualTo(Integer value) {
            addCriterion("remain_sum <>", value, "remainSum");
            return (Criteria) this;
        }

        public Criteria andRemainSumGreaterThan(Integer value) {
            addCriterion("remain_sum >", value, "remainSum");
            return (Criteria) this;
        }

        public Criteria andRemainSumGreaterThanOrEqualTo(Integer value) {
            addCriterion("remain_sum >=", value, "remainSum");
            return (Criteria) this;
        }

        public Criteria andRemainSumLessThan(Integer value) {
            addCriterion("remain_sum <", value, "remainSum");
            return (Criteria) this;
        }

        public Criteria andRemainSumLessThanOrEqualTo(Integer value) {
            addCriterion("remain_sum <=", value, "remainSum");
            return (Criteria) this;
        }

        public Criteria andRemainSumIn(List<Integer> values) {
            addCriterion("remain_sum in", values, "remainSum");
            return (Criteria) this;
        }

        public Criteria andRemainSumNotIn(List<Integer> values) {
            addCriterion("remain_sum not in", values, "remainSum");
            return (Criteria) this;
        }

        public Criteria andRemainSumBetween(Integer value1, Integer value2) {
            addCriterion("remain_sum between", value1, value2, "remainSum");
            return (Criteria) this;
        }

        public Criteria andRemainSumNotBetween(Integer value1, Integer value2) {
            addCriterion("remain_sum not between", value1, value2, "remainSum");
            return (Criteria) this;
        }

        public Criteria andDistributeCountIsNull() {
            addCriterion("distribute_count is null");
            return (Criteria) this;
        }

        public Criteria andDistributeCountIsNotNull() {
            addCriterion("distribute_count is not null");
            return (Criteria) this;
        }

        public Criteria andDistributeCountEqualTo(Integer value) {
            addCriterion("distribute_count =", value, "distributeCount");
            return (Criteria) this;
        }

        public Criteria andDistributeCountNotEqualTo(Integer value) {
            addCriterion("distribute_count <>", value, "distributeCount");
            return (Criteria) this;
        }

        public Criteria andDistributeCountGreaterThan(Integer value) {
            addCriterion("distribute_count >", value, "distributeCount");
            return (Criteria) this;
        }

        public Criteria andDistributeCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("distribute_count >=", value, "distributeCount");
            return (Criteria) this;
        }

        public Criteria andDistributeCountLessThan(Integer value) {
            addCriterion("distribute_count <", value, "distributeCount");
            return (Criteria) this;
        }

        public Criteria andDistributeCountLessThanOrEqualTo(Integer value) {
            addCriterion("distribute_count <=", value, "distributeCount");
            return (Criteria) this;
        }

        public Criteria andDistributeCountIn(List<Integer> values) {
            addCriterion("distribute_count in", values, "distributeCount");
            return (Criteria) this;
        }

        public Criteria andDistributeCountNotIn(List<Integer> values) {
            addCriterion("distribute_count not in", values, "distributeCount");
            return (Criteria) this;
        }

        public Criteria andDistributeCountBetween(Integer value1, Integer value2) {
            addCriterion("distribute_count between", value1, value2, "distributeCount");
            return (Criteria) this;
        }

        public Criteria andDistributeCountNotBetween(Integer value1, Integer value2) {
            addCriterion("distribute_count not between", value1, value2, "distributeCount");
            return (Criteria) this;
        }

        public Criteria andLastSubtaskIdIsNull() {
            addCriterion("last_subtask_id is null");
            return (Criteria) this;
        }

        public Criteria andLastSubtaskIdIsNotNull() {
            addCriterion("last_subtask_id is not null");
            return (Criteria) this;
        }

        public Criteria andLastSubtaskIdEqualTo(Long value) {
            addCriterion("last_subtask_id =", value, "lastSubtaskId");
            return (Criteria) this;
        }

        public Criteria andLastSubtaskIdNotEqualTo(Long value) {
            addCriterion("last_subtask_id <>", value, "lastSubtaskId");
            return (Criteria) this;
        }

        public Criteria andLastSubtaskIdGreaterThan(Long value) {
            addCriterion("last_subtask_id >", value, "lastSubtaskId");
            return (Criteria) this;
        }

        public Criteria andLastSubtaskIdGreaterThanOrEqualTo(Long value) {
            addCriterion("last_subtask_id >=", value, "lastSubtaskId");
            return (Criteria) this;
        }

        public Criteria andLastSubtaskIdLessThan(Long value) {
            addCriterion("last_subtask_id <", value, "lastSubtaskId");
            return (Criteria) this;
        }

        public Criteria andLastSubtaskIdLessThanOrEqualTo(Long value) {
            addCriterion("last_subtask_id <=", value, "lastSubtaskId");
            return (Criteria) this;
        }

        public Criteria andLastSubtaskIdIn(List<Long> values) {
            addCriterion("last_subtask_id in", values, "lastSubtaskId");
            return (Criteria) this;
        }

        public Criteria andLastSubtaskIdNotIn(List<Long> values) {
            addCriterion("last_subtask_id not in", values, "lastSubtaskId");
            return (Criteria) this;
        }

        public Criteria andLastSubtaskIdBetween(Long value1, Long value2) {
            addCriterion("last_subtask_id between", value1, value2, "lastSubtaskId");
            return (Criteria) this;
        }

        public Criteria andLastSubtaskIdNotBetween(Long value1, Long value2) {
            addCriterion("last_subtask_id not between", value1, value2, "lastSubtaskId");
            return (Criteria) this;
        }

        public Criteria andRetrySubtaskIdsIsNull() {
            addCriterion("retry_subtask_ids is null");
            return (Criteria) this;
        }

        public Criteria andRetrySubtaskIdsIsNotNull() {
            addCriterion("retry_subtask_ids is not null");
            return (Criteria) this;
        }

        public Criteria andRetrySubtaskIdsEqualTo(String value) {
            addCriterion("retry_subtask_ids =", value, "retrySubtaskIds");
            return (Criteria) this;
        }

        public Criteria andRetrySubtaskIdsNotEqualTo(String value) {
            addCriterion("retry_subtask_ids <>", value, "retrySubtaskIds");
            return (Criteria) this;
        }

        public Criteria andRetrySubtaskIdsGreaterThan(String value) {
            addCriterion("retry_subtask_ids >", value, "retrySubtaskIds");
            return (Criteria) this;
        }

        public Criteria andRetrySubtaskIdsGreaterThanOrEqualTo(String value) {
            addCriterion("retry_subtask_ids >=", value, "retrySubtaskIds");
            return (Criteria) this;
        }

        public Criteria andRetrySubtaskIdsLessThan(String value) {
            addCriterion("retry_subtask_ids <", value, "retrySubtaskIds");
            return (Criteria) this;
        }

        public Criteria andRetrySubtaskIdsLessThanOrEqualTo(String value) {
            addCriterion("retry_subtask_ids <=", value, "retrySubtaskIds");
            return (Criteria) this;
        }

        public Criteria andRetrySubtaskIdsLike(String value) {
            addCriterion("retry_subtask_ids like", value, "retrySubtaskIds");
            return (Criteria) this;
        }

        public Criteria andRetrySubtaskIdsNotLike(String value) {
            addCriterion("retry_subtask_ids not like", value, "retrySubtaskIds");
            return (Criteria) this;
        }

        public Criteria andRetrySubtaskIdsIn(List<String> values) {
            addCriterion("retry_subtask_ids in", values, "retrySubtaskIds");
            return (Criteria) this;
        }

        public Criteria andRetrySubtaskIdsNotIn(List<String> values) {
            addCriterion("retry_subtask_ids not in", values, "retrySubtaskIds");
            return (Criteria) this;
        }

        public Criteria andRetrySubtaskIdsBetween(String value1, String value2) {
            addCriterion("retry_subtask_ids between", value1, value2, "retrySubtaskIds");
            return (Criteria) this;
        }

        public Criteria andRetrySubtaskIdsNotBetween(String value1, String value2) {
            addCriterion("retry_subtask_ids not between", value1, value2, "retrySubtaskIds");
            return (Criteria) this;
        }

        public Criteria andLastRetrySubtaskIsNull() {
            addCriterion("last_retry_subtask is null");
            return (Criteria) this;
        }

        public Criteria andLastRetrySubtaskIsNotNull() {
            addCriterion("last_retry_subtask is not null");
            return (Criteria) this;
        }

        public Criteria andLastRetrySubtaskEqualTo(Long value) {
            addCriterion("last_retry_subtask =", value, "lastRetrySubtask");
            return (Criteria) this;
        }

        public Criteria andLastRetrySubtaskNotEqualTo(Long value) {
            addCriterion("last_retry_subtask <>", value, "lastRetrySubtask");
            return (Criteria) this;
        }

        public Criteria andLastRetrySubtaskGreaterThan(Long value) {
            addCriterion("last_retry_subtask >", value, "lastRetrySubtask");
            return (Criteria) this;
        }

        public Criteria andLastRetrySubtaskGreaterThanOrEqualTo(Long value) {
            addCriterion("last_retry_subtask >=", value, "lastRetrySubtask");
            return (Criteria) this;
        }

        public Criteria andLastRetrySubtaskLessThan(Long value) {
            addCriterion("last_retry_subtask <", value, "lastRetrySubtask");
            return (Criteria) this;
        }

        public Criteria andLastRetrySubtaskLessThanOrEqualTo(Long value) {
            addCriterion("last_retry_subtask <=", value, "lastRetrySubtask");
            return (Criteria) this;
        }

        public Criteria andLastRetrySubtaskIn(List<Long> values) {
            addCriterion("last_retry_subtask in", values, "lastRetrySubtask");
            return (Criteria) this;
        }

        public Criteria andLastRetrySubtaskNotIn(List<Long> values) {
            addCriterion("last_retry_subtask not in", values, "lastRetrySubtask");
            return (Criteria) this;
        }

        public Criteria andLastRetrySubtaskBetween(Long value1, Long value2) {
            addCriterion("last_retry_subtask between", value1, value2, "lastRetrySubtask");
            return (Criteria) this;
        }

        public Criteria andLastRetrySubtaskNotBetween(Long value1, Long value2) {
            addCriterion("last_retry_subtask not between", value1, value2, "lastRetrySubtask");
            return (Criteria) this;
        }

        public Criteria andNeedAuxiliaryIsNull() {
            addCriterion("need_auxiliary is null");
            return (Criteria) this;
        }

        public Criteria andNeedAuxiliaryIsNotNull() {
            addCriterion("need_auxiliary is not null");
            return (Criteria) this;
        }

        public Criteria andNeedAuxiliaryEqualTo(Integer value) {
            addCriterion("need_auxiliary =", value, "needAuxiliary");
            return (Criteria) this;
        }

        public Criteria andNeedAuxiliaryNotEqualTo(Integer value) {
            addCriterion("need_auxiliary <>", value, "needAuxiliary");
            return (Criteria) this;
        }

        public Criteria andNeedAuxiliaryGreaterThan(Integer value) {
            addCriterion("need_auxiliary >", value, "needAuxiliary");
            return (Criteria) this;
        }

        public Criteria andNeedAuxiliaryGreaterThanOrEqualTo(Integer value) {
            addCriterion("need_auxiliary >=", value, "needAuxiliary");
            return (Criteria) this;
        }

        public Criteria andNeedAuxiliaryLessThan(Integer value) {
            addCriterion("need_auxiliary <", value, "needAuxiliary");
            return (Criteria) this;
        }

        public Criteria andNeedAuxiliaryLessThanOrEqualTo(Integer value) {
            addCriterion("need_auxiliary <=", value, "needAuxiliary");
            return (Criteria) this;
        }

        public Criteria andNeedAuxiliaryIn(List<Integer> values) {
            addCriterion("need_auxiliary in", values, "needAuxiliary");
            return (Criteria) this;
        }

        public Criteria andNeedAuxiliaryNotIn(List<Integer> values) {
            addCriterion("need_auxiliary not in", values, "needAuxiliary");
            return (Criteria) this;
        }

        public Criteria andNeedAuxiliaryBetween(Integer value1, Integer value2) {
            addCriterion("need_auxiliary between", value1, value2, "needAuxiliary");
            return (Criteria) this;
        }

        public Criteria andNeedAuxiliaryNotBetween(Integer value1, Integer value2) {
            addCriterion("need_auxiliary not between", value1, value2, "needAuxiliary");
            return (Criteria) this;
        }

        public Criteria andDeviceSupportAuxiliaryIsNull() {
            addCriterion("device_support_auxiliary is null");
            return (Criteria) this;
        }

        public Criteria andDeviceSupportAuxiliaryIsNotNull() {
            addCriterion("device_support_auxiliary is not null");
            return (Criteria) this;
        }

        public Criteria andDeviceSupportAuxiliaryEqualTo(Integer value) {
            addCriterion("device_support_auxiliary =", value, "deviceSupportAuxiliary");
            return (Criteria) this;
        }

        public Criteria andDeviceSupportAuxiliaryNotEqualTo(Integer value) {
            addCriterion("device_support_auxiliary <>", value, "deviceSupportAuxiliary");
            return (Criteria) this;
        }

        public Criteria andDeviceSupportAuxiliaryGreaterThan(Integer value) {
            addCriterion("device_support_auxiliary >", value, "deviceSupportAuxiliary");
            return (Criteria) this;
        }

        public Criteria andDeviceSupportAuxiliaryGreaterThanOrEqualTo(Integer value) {
            addCriterion("device_support_auxiliary >=", value, "deviceSupportAuxiliary");
            return (Criteria) this;
        }

        public Criteria andDeviceSupportAuxiliaryLessThan(Integer value) {
            addCriterion("device_support_auxiliary <", value, "deviceSupportAuxiliary");
            return (Criteria) this;
        }

        public Criteria andDeviceSupportAuxiliaryLessThanOrEqualTo(Integer value) {
            addCriterion("device_support_auxiliary <=", value, "deviceSupportAuxiliary");
            return (Criteria) this;
        }

        public Criteria andDeviceSupportAuxiliaryIn(List<Integer> values) {
            addCriterion("device_support_auxiliary in", values, "deviceSupportAuxiliary");
            return (Criteria) this;
        }

        public Criteria andDeviceSupportAuxiliaryNotIn(List<Integer> values) {
            addCriterion("device_support_auxiliary not in", values, "deviceSupportAuxiliary");
            return (Criteria) this;
        }

        public Criteria andDeviceSupportAuxiliaryBetween(Integer value1, Integer value2) {
            addCriterion("device_support_auxiliary between", value1, value2, "deviceSupportAuxiliary");
            return (Criteria) this;
        }

        public Criteria andDeviceSupportAuxiliaryNotBetween(Integer value1, Integer value2) {
            addCriterion("device_support_auxiliary not between", value1, value2, "deviceSupportAuxiliary");
            return (Criteria) this;
        }

        public Criteria andNeedCanIsNull() {
            addCriterion("need_can is null");
            return (Criteria) this;
        }

        public Criteria andNeedCanIsNotNull() {
            addCriterion("need_can is not null");
            return (Criteria) this;
        }

        public Criteria andNeedCanEqualTo(Integer value) {
            addCriterion("need_can =", value, "needCan");
            return (Criteria) this;
        }

        public Criteria andNeedCanNotEqualTo(Integer value) {
            addCriterion("need_can <>", value, "needCan");
            return (Criteria) this;
        }

        public Criteria andNeedCanGreaterThan(Integer value) {
            addCriterion("need_can >", value, "needCan");
            return (Criteria) this;
        }

        public Criteria andNeedCanGreaterThanOrEqualTo(Integer value) {
            addCriterion("need_can >=", value, "needCan");
            return (Criteria) this;
        }

        public Criteria andNeedCanLessThan(Integer value) {
            addCriterion("need_can <", value, "needCan");
            return (Criteria) this;
        }

        public Criteria andNeedCanLessThanOrEqualTo(Integer value) {
            addCriterion("need_can <=", value, "needCan");
            return (Criteria) this;
        }

        public Criteria andNeedCanIn(List<Integer> values) {
            addCriterion("need_can in", values, "needCan");
            return (Criteria) this;
        }

        public Criteria andNeedCanNotIn(List<Integer> values) {
            addCriterion("need_can not in", values, "needCan");
            return (Criteria) this;
        }

        public Criteria andNeedCanBetween(Integer value1, Integer value2) {
            addCriterion("need_can between", value1, value2, "needCan");
            return (Criteria) this;
        }

        public Criteria andNeedCanNotBetween(Integer value1, Integer value2) {
            addCriterion("need_can not between", value1, value2, "needCan");
            return (Criteria) this;
        }

        public Criteria andDeviceSupportCanIsNull() {
            addCriterion("device_support_can is null");
            return (Criteria) this;
        }

        public Criteria andDeviceSupportCanIsNotNull() {
            addCriterion("device_support_can is not null");
            return (Criteria) this;
        }

        public Criteria andDeviceSupportCanEqualTo(Integer value) {
            addCriterion("device_support_can =", value, "deviceSupportCan");
            return (Criteria) this;
        }

        public Criteria andDeviceSupportCanNotEqualTo(Integer value) {
            addCriterion("device_support_can <>", value, "deviceSupportCan");
            return (Criteria) this;
        }

        public Criteria andDeviceSupportCanGreaterThan(Integer value) {
            addCriterion("device_support_can >", value, "deviceSupportCan");
            return (Criteria) this;
        }

        public Criteria andDeviceSupportCanGreaterThanOrEqualTo(Integer value) {
            addCriterion("device_support_can >=", value, "deviceSupportCan");
            return (Criteria) this;
        }

        public Criteria andDeviceSupportCanLessThan(Integer value) {
            addCriterion("device_support_can <", value, "deviceSupportCan");
            return (Criteria) this;
        }

        public Criteria andDeviceSupportCanLessThanOrEqualTo(Integer value) {
            addCriterion("device_support_can <=", value, "deviceSupportCan");
            return (Criteria) this;
        }

        public Criteria andDeviceSupportCanIn(List<Integer> values) {
            addCriterion("device_support_can in", values, "deviceSupportCan");
            return (Criteria) this;
        }

        public Criteria andDeviceSupportCanNotIn(List<Integer> values) {
            addCriterion("device_support_can not in", values, "deviceSupportCan");
            return (Criteria) this;
        }

        public Criteria andDeviceSupportCanBetween(Integer value1, Integer value2) {
            addCriterion("device_support_can between", value1, value2, "deviceSupportCan");
            return (Criteria) this;
        }

        public Criteria andDeviceSupportCanNotBetween(Integer value1, Integer value2) {
            addCriterion("device_support_can not between", value1, value2, "deviceSupportCan");
            return (Criteria) this;
        }

        public Criteria andSubtaskCountIsNull() {
            addCriterion("subtask_count is null");
            return (Criteria) this;
        }

        public Criteria andSubtaskCountIsNotNull() {
            addCriterion("subtask_count is not null");
            return (Criteria) this;
        }

        public Criteria andSubtaskCountEqualTo(Integer value) {
            addCriterion("subtask_count =", value, "subtaskCount");
            return (Criteria) this;
        }

        public Criteria andSubtaskCountNotEqualTo(Integer value) {
            addCriterion("subtask_count <>", value, "subtaskCount");
            return (Criteria) this;
        }

        public Criteria andSubtaskCountGreaterThan(Integer value) {
            addCriterion("subtask_count >", value, "subtaskCount");
            return (Criteria) this;
        }

        public Criteria andSubtaskCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("subtask_count >=", value, "subtaskCount");
            return (Criteria) this;
        }

        public Criteria andSubtaskCountLessThan(Integer value) {
            addCriterion("subtask_count <", value, "subtaskCount");
            return (Criteria) this;
        }

        public Criteria andSubtaskCountLessThanOrEqualTo(Integer value) {
            addCriterion("subtask_count <=", value, "subtaskCount");
            return (Criteria) this;
        }

        public Criteria andSubtaskCountIn(List<Integer> values) {
            addCriterion("subtask_count in", values, "subtaskCount");
            return (Criteria) this;
        }

        public Criteria andSubtaskCountNotIn(List<Integer> values) {
            addCriterion("subtask_count not in", values, "subtaskCount");
            return (Criteria) this;
        }

        public Criteria andSubtaskCountBetween(Integer value1, Integer value2) {
            addCriterion("subtask_count between", value1, value2, "subtaskCount");
            return (Criteria) this;
        }

        public Criteria andSubtaskCountNotBetween(Integer value1, Integer value2) {
            addCriterion("subtask_count not between", value1, value2, "subtaskCount");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andIsDeletedIsNull() {
            addCriterion("is_deleted is null");
            return (Criteria) this;
        }

        public Criteria andIsDeletedIsNotNull() {
            addCriterion("is_deleted is not null");
            return (Criteria) this;
        }

        public Criteria andIsDeletedEqualTo(Integer value) {
            addCriterion("is_deleted =", value, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedNotEqualTo(Integer value) {
            addCriterion("is_deleted <>", value, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedGreaterThan(Integer value) {
            addCriterion("is_deleted >", value, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedGreaterThanOrEqualTo(Integer value) {
            addCriterion("is_deleted >=", value, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedLessThan(Integer value) {
            addCriterion("is_deleted <", value, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedLessThanOrEqualTo(Integer value) {
            addCriterion("is_deleted <=", value, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedIn(List<Integer> values) {
            addCriterion("is_deleted in", values, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedNotIn(List<Integer> values) {
            addCriterion("is_deleted not in", values, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedBetween(Integer value1, Integer value2) {
            addCriterion("is_deleted between", value1, value2, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedNotBetween(Integer value1, Integer value2) {
            addCriterion("is_deleted not between", value1, value2, "isDeleted");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}